package servicios

import daos.SessionManager
import java.util.List
import aerolinea.Vuelo
import aerolinea.Tramo
import daos.Operation
import daos.VueloDAO

class VueloManager {
	
	def consultarVuelo(int id) {
		SessionManager.runInSession(new ConsultarVuelo(id))
	}
	
	def crearVuelo(int id, List<Tramo> tramos) {
		SessionManager.runInSession(new CrearVuelo(id, tramos))
	}

	def modificarVuelo(int id, List<Tramo> tramos) {
		SessionManager.runInSession(new ModificarVuelo(id, tramos))
	}
}

class ConsultarVuelo implements Operation<Vuelo>{
	var int id
	
	new(int ide) {
		id= ide
	}

	override Vuelo execute() {
		var a = new VueloDAO().get(id)
		a
	}
}

class CrearVuelo implements Operation<Vuelo> {
	var int id
	var List<Tramo> tramos

	new(int ide, List<Tramo> tram) {
		id= ide
		tramos= tram
	}

	override Vuelo execute() {
		var a = new Vuelo(id, tramos)
		new VueloDAO().save(a)
	    a
	}
}

class ModificarVuelo implements Operation<Vuelo> {

	var int id
	var List<Tramo> tramos

	new(int ide, List<Tramo> tram) {
		id= ide
		tramos= tram
	}


	override Vuelo execute() {
		var a = new VueloDAO().get(id)
		a.setTramos(tramos)
		a
	}

}